<?php
session_start();

//--- Recuperation des variables du formulaire ---//
$user = $_POST["user"];
$pass = $_POST["password"];
$BDD  = $_POST["BDD"];

//--- Variables propre a la page ---//
$connect = false;

//--- Initialise la connexion a la BDD ---//
$cnx = @oci_connect($user, $pass, $BDD); // NB : le @ cache l'affichage de l'erreur generee

//--- Test de connectivite ---//
if(!$cnx)
{
	$_SESSION["ErrConnexion"] = "Error";
	//--- recuperation de l'erreur retourne ---//
	$e = oci_error();
	$_SESSION["MsgConnexion"] = TraitementErreurOCI($e['message']); // NB : $e est un array $e['message'] correspond a l'erreur
	$connect = false;
	header("Location: ../index.php");
}
else
{
	$connect = true;
	
	$conn = @oci_connect("SYSTEM", "adminromain" , "//localhost/XE");
	
	$req = "SELECT initial_rsrc_consumer_group FROM DBA_USERS WHERE USERNAME=upper('".$user."')"; 
	
	if (!$conn) {
		$e = oci_error();
		trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
	}
				
	$stid = oci_parse($conn, $req);
	@oci_execute($stid);
	
	$row = @oci_fetch_array($stid, OCI_BOTH);
	
	if($row[0] == "DEFAULT_CONSUMER_GROUP"){
		$_SESSION["UserAccess"] = "User";
	}
	elseif($row[0] == "SYS_GROUP"){
		$_SESSION["UserAccess"] = "Admin";
	}
	else{
		header("Location:../module/deconnexion.php");
	}
	
	$_SESSION["user"]     = $user;
	$_SESSION["password"] = $pass;
	$_SESSION["BDD"]      = $BDD;
	
	header("Location: ../index.php");
	
	echo'Connexion ok !';
}

//--- Passage des variables en variable de session ---//
$_SESSION["connect"]  = $connect; 

//--- Fonction qui traite les erreurs generees par la tentative de connexion ---//
function TraitementErreurOCI($e)
{
	$msgErreur = "Erreur : Contactez l'admininistrateur de la base de donnee.";
	
	if(substr_count($e,"nom utilisateur") >= 1 OR substr_count($e,"mot de passe") >= 1){
		$msgErreur = "Erreur : le login et/ou le password est mauvais.";
	}
	elseif(stripos($e,"privilege") >= 1){
		$msgErreur = "Erreur : Vous n'avez pas les privil�ges suffisants";
	}
	
	return $msgErreur;
}

?>